package com.zhentao.test;

/**
 * @Date 2024/4/8 15:34
 * @Author xdm
 **/

/**
 * 1.一个类只能有一个实例
 * 2.该类的实例由该类自己创建
 * 3.该类必须给其他的对象提供这个实例
 */
public class SingleObject01 {
    //如何保证该类的实例只能由自己创建-构造函数私有化
    private SingleObject01() {
        System.out.println("创建对象singleton01");
    }

    private static SingleObject01 instance;

    //如果保证只能由一个实例  -如果有就直接用，如果没有就new 一个
    //如何保证该类的实例提供给其他的类
    public static synchronized SingleObject01 getInstance() {
        if (instance == null) {
            instance = new SingleObject01();
        }
        return instance;
    }


}
